home *** CD-ROM | disk | FTP | other *** search
- Short: free optimizing ANSI C compiler (68k)
- Uploader: volker@vb.franken.de (Volker Barthelmann)
- Author: volker@vb.franken.de (Volker Barthelmann)
- Type: dev/c
- Version: 0.7
- Replaces: dev/c/vbcc.lha
-
- vbcc - portable ANSI C compiler (c) in 1995-99 by Volker Barthelmann
-
-
- INTRODUCTION
-
- vbcc is a free portable and retargetable ANSI C compiler.
-
- This archive contains the compiler, preprocessor, assembler, linker,
- frontend, message browser, startup codes, C-libraries, amiga.lib
- replacements as well as several other tools for 68k.
-
- This gives you a complete system that allows to develop programs in
- ANSI C as well as Amiga-specific programs (provided you obtain the
- OS-includes) running on 68k.
-
- All major parts of this distribution (including compiler, preprocessor,
- libraries etc.) have been compiled/assembled with this system and
- apart from the OS-includes everything needed to rebuilt vbcc,
- the libraries and many of the other programs is contained in this
- archive and the corresponding source archive.
-
- Note that the programs in this archive all run on the 68k. There is
- another archive which contains compilers that run on the PPC.
-
-
- FEATURES
-
- vbcc..
-
- - comes with source
-
- - is free
-
- - is portable and retargetable
-
- - comes with a global optimizer that can e.g. do global common
- subexpression elimination, constant propagation, function inlining
- and several other optimizations (but is not yet finished and may
- have some bugs)
-
- - should be ANSI compliant
-
- - can generate code that runs on a plain 68000 CPU
-
- - can generate code optimized for 020/030, 040 or 060
-
- - can generate code that uses the 68881/2, 68040/060 FPUs directly
- and comes with appropriate math-libraries
-
- - can generate code that runs on PowerUp-boards
-
- - generates standard Amiga-68k-objects, PPC-ELF-objects or
- WarpOS-EHF-objects
-
- - does not need too much memory
-
- - comes with a message browser
-
- - comes with a config program
-
- - offers a lot of error/warning messages that can be turned on/off
- separately
-
-
- WHAT'S NEW
-
- Some changes since the last release:
-
- - bug fixes
-
- - new optimizations
-
- - much improved libaries
-
- - use of Frank Wille's linker vlink
-
- - support for PPC/WarpOS
-
- - support for small data for PPC/ELF and PPC/WarpOS
-
- - support for __saveds (68k, PPC/ELF and PPC/WarpOS)
-
- - support for __far (68k, PPC/EFL and PPC/WarpOS)
-
- - support for __chip (68k and PPC/WarpOS)
-
- - support for auto opening of libraries (68k, PPC/ELF and PPC/WarpOS)
-
- - cleaned up distributions for all three Amiga targets
-
- - checking for unresolved symbols for PPC/ELF
-
- - scheduler for PPC (ELF and WarpOS)
-
-
- REQUIREMENTS
-
- To use vbcc you need:
-
- - an Amiga with OS 2.0 or higher
-
- - enough RAM (it is possible to translate small programs with 1MB, but
- for larger programs much more will be needed)
-
- Stuff that is not needed, but may be very useful:
-
- - harddisk
-
- - editor
-
- - make, touch etc.
-
- - the Amiga OS-includes (they can be found on certain CDs)
-
- - pipe-command (to use the message browser)
-
- Also you should know how to use the shell and you should know ANSI C
- (if you need a book I recommend (like everyone) "The C Programming
- Language, Second Edition, ANSI C" by Kernighan and Ritchie).
-
-
- LEGAL
-
- Note that this distribution contains several programs, libraries etc.
- that are from different authors and are under different legal status.
- So always read the corresponding doc/guide-file to find out under
- what conditions a certain file may be used, distributed etc.
-
- For the most part you can assume that you may use everything for
- non-commercial purposes and may distribute the unchanged archive
- in whole.
-
- Changing any parts from this archive, distributing parts of it or
- using it commercially might be legal for certain parts, but illegal
- for others, so read all docs carefully before doing any of the above.
-
- This archive contains code written by (this list may be incomplete):
-
- Volker Barthelmann, Frank Wille, Thorsten Schaaps, Dennis Ritchie,
- Matthias Fleischer, Gunther Nikl, Mike Schwartz, Kasper Graversen,
- Johnny Tevessen
-
- However, if you have any comments/problems etc. with anything, please
- do not bother them, but write to me (volker@vb.franken.de) first.
- Exceptions are the parts by Kasper Graversen.
-
-
- INSTALLATION/TUTORIAL
-
- [Names of directories, binaries or assigns have changed since earlier
- versions as have config-files. So users of earlier versions should
- read this again and do a complete re-install to avoid problems.]
-
- The first step (which you probably already did) is to extract the
- entire archive (take care to preserve the file attributes). If you
- have several archives of the vbcc distribution you can just extract
- them all to the same place.
-
- The distributed programs are for the most part only usable from a shell.
-
- To use vbcc the following steps are necessary:
-
- 1. Go to the subdirectory vbcc/machines/amiga.
-
- 2. If you have the Amiga OS-includes copy them into the include
- directory.
-
- 3. Execute the script init_vbcc.
-
- 4. If you compile larger projects it may be necessary to increase
- the stack further.
-
- If you use vbcc frequently it is probably a good idea to add those
- commands to your user-startup, shell-startup or similar.
-
- Now you should be able to use vbcc. E.g. if you want to compile and
- link the program hello.c you can type
-
- vc hello.c
-
- This will compile and link the file hello.c and create the executable
- a.out in the current directory.
-
- vc hello.c -o hello
-
- will do the same, but the created executable will be called hello.
-
- vc -c t1.c t2.c
-
- will compile t1.c and t2.c without linking, creating the object files
- t1.o and t2.o.
-
- vc t1.o t2.o -o tt
-
- will link them together and create the executable tt.
-
- If your program uses floating point add -lmieee to the commandline
- to link with the math-library, e.g.:
-
- vc calc.c -o calc -lmieee
-
- There is also an extra.lib which includes a few functions that are
- no standard ANSI functions but some people seem to regard them as
- standard functions. If you use one of these add -lextra to the
- commandline and read:
-
- vbcc/machines/amiga/doc/extralibm68k.doc
-
- For further information read the files:
-
- vbcc/doc/vbcc.doc
- vbcc/doc/vc.doc
- vbcc/doc/vbccm68k.doc
- vbcc/machines/amiga/doc/vclibm68k.doc
-
-
- SUPPORT FOR OTHER TARGETS
-
- This release of vbcc is able to generate code for 68k, PPC/ELF
- and PPC/WarpOS. If you have installed other backends you can
- choose the target by specifying another config file with the
- '+'-option (e.g. +ppc).
-
- For further details see the corresponding docs for this target.
-
-
- CONFIGURATION
-
- The frontend searches for a file vc.config in ENV: and vbcc: to read
- preferences. The provided sample vc.config should be usable and does
- not have to be changed but you can add something to suit your personal
- preferences - read
-
- vbcc/doc/vc.doc
-
- to find out more.
-
-
- MESSAGE BROWSER
-
- If you start the message browser with
-
- run vbrowse
-
- it will open a window with a listview gadget. If you have a pipe
- command installed you can now invoke vc via tovbr, e.g.
-
- tovbr vc hello.c
-
- and any output from vc will be displayed in the window of vbrowse
- rather than in the shell. It might be convenient to make an alias like
-
- alias vb tovbr vc
-
- so that invoking vb will automatically display the output in the browser.
-
- If there is an error/warning-message in the browser you can invoke a
- configurable command by double-clicking on the message.
-
- Double-clicking on the quoted line will invoke GoldEd (if you have it
- installed) by default, load the file that caused the error and the cursor
- will be placed on this line in the default configuration. If you use
- another editor or want to change this behaviour have a look at
- vbcc/machines/amiga/doc/vbrowse.doc.
-
- Double-clicking on the error-line (the one below the quoted line) will
- invoke the command showerr that will open the VBCCMessages.guide and
- display a more detailed description of the error (if there is one in
- the guide - there are not yet descriptions for all messages).
-
- Read vbcc/machines/amiga/vbrowse.doc for further information.
-
-
- CONTENTS
-
- This archive contains (among others) the following files and directories:
-
- vbcc/
-
- The main directory. The source files for the compiler and the
- builtin preprocessor by Thorsten Schaaps are here.
-
- vbcc/doc/
-
- Host independant documentation for the compiler is in this dir.
-
- vbcc/doc/History
-
- Changes in since earlier versions of the compiler.
-
- vbcc/doc/vbcc.doc
-
- Documentation for the target-independant part of the compiler.
-
- vbcc/doc/vbcc.faq
-
- Frequently asked questions about vbcc.
-
- vbcc/doc/errors.doc
-
- A list of all error/warning-messages from the compiler -
- sometimes with more detailed descriptions.
-
- vbcc/doc/vbccm68k.doc
-
- Documentation for the 68k code generator.
-
- vbcc/doc/vc.doc
-
- Documentation for the compiler-frontend.
-
- vbcc/doc/vlink.doc
-
- Documentation for the linker by Frank Wille.
-
- vbcc/doc/vcpp.doc
-
- Some short comments regarding the preprocessor from the
- lcc-distribution. Read the copyright-notice.
-
- vbcc/doc/building.doc
-
- Documentation on building vbcc.
-
- vbcc/bin/
-
- The directory containing binaries of preprocessor, compiler and
- frontend. Additional binaries may be in machines/xyz/bin/.
-
- vbcc/bin/vbccm68k
-
- The native C compiler for m68k.
-
- vbcc/bin/vbccppc
-
- The C cross-compiler for PPC. Running on m68k.
-
- vbcc/bin/vbccm68k_ppc
-
- The C cross-compiler for m68k. Running on PPC/ELF. (optional)
-
- vbcc/bin/vbccppc_ppc
-
- The native C compiler for PPC/ELF. (optional)
-
- vbcc/bin/vbccm68k_wos
-
- The C cross-compiler for m68k. Running on PPC/WOS. (optional)
-
- vbcc/bin/vbccppc_wos
-
- The native C compiler for PPC/WOS. (optional)
-
- vbcc/bin/vc
-
- The compiler-frontend.
-
- vbcc/bin/vlink
-
- The linker by Frank Wille.
-
- vbcc/bin/vcpp
-
- The preprocessor from the lcc-distribution (by Dennis Ritchie).
-
- vbcc/machines/amiga/doc/
-
- This contains documentation for the Amiga specific parts.
-
- vbcc/machines/amiga/doc/extralibm68k.doc
-
- Documentation for extra.lib.
-
- vbcc/machines/amiga/doc/PhxAss.guide
-
- Documentation for the assembler by Frank Wille.
-
- vbcc/machines/amiga/doc/VBCCMessages.guide
-
- The vbcc/doc/errors.doc in Amigaguide-format (done by Walter
- Doerwald).
-
- vbcc/machines/amiga/doc/vclibm68k.doc
-
- Documentation for the Amiga-C-library.
-
- vbcc/machines/amiga/doc/ixemul.doc
-
- Documentation on using the ixemul.library.
-
- vbcc/machines/amiga/doc/vbrowse.doc
-
- Documentation on the message browser and several connected tools.
-
- vbcc/machines/amiga/doc/fd2lib.doc
-
- Documentation for fd2lib.
-
- vbcc/machines/amiga/doc/minstart.doc
-
- Documentation for minstart.o.
-
- vbcc/machines/amiga/doc/alib.doc
-
- Documentation for alib by Mike Schwartz.
-
- vbcc/machines/amiga/init_vbcc
-
- A sample script to do the necessary assigns etc. to use vbcc.
-
- vbcc/machines/amiga/include
-
- Here you can install the OS-includes.
-
- vbcc/machines/amiga68k/include
-
- This directory contains the standard-ANSI-includes for vc.lib
- on m68k.
-
- vbcc/machines/amiga/bin/
-
- This directory contains all Amiga-specific executables.
-
- vbcc/machines/amiga/bin/PhxAss
-
- The assembler by Frank Wille.
-
- vbcc/machines/amiga/bin/vbrowse
- vbcc/machines/amiga/bin/vsend
- vbcc/machines/amiga/bin/tovbr
- vbcc/machines/amiga/bin/showerr
-
- The message browser and some tools.
-
- vbcc/machines/amiga/bin/fd2lib
-
- fd2lib generates stubs for shared libraries and must be used to
- rebuilt amiga.lib or if you want to use any custom shared-library.
-
- vbcc/machines/amiga/bin/alib
-
- Used to create link-libraries.
-
- vbcc/machines/amiga68k/lib/
-
- This directory contains the link-libraries and startup-codes
- for Amiga68k.
-
- vbcc/machines/amiga68k/lib/startup.o
-
- The standard startup-code for vc.lib.
-
- vbcc/machines/amiga68k/lib/vc.lib
-
- The standard C-library.
-
- vbcc/machines/amiga68k/lib/vcs.lib
-
- The small data C-library.
-
- vbcc/machines/amiga68k/lib/mieee.lib
-
- Math-library that uses the MathIeee-libraries.
-
- vbcc/machines/amiga68k/lib/m881.lib
-
- Math-library that uses FPU-instructions of the 68881/2.
-
- vbcc/machines/amiga68k/lib/m040.lib
-
- Math-library that uses FPU-instructions that do not have to be
- emulated on a 68040 and the Motorola emulation routines
- otherwise.
-
- vbcc/machines/amiga68k/lib/m040o.lib
-
- Math-library that uses FPU-instructions that do not have to be
- emulated on a 68040 and the MathIeee*.library functions
- otherwise.
-
- vbcc/machines/amiga68k/lib/crt0.o
-
- Startup-code for using ixemul.library with large data model.
-
- vbcc/machines/amiga68k/lib/bcrt0.o
-
- Startup-code for using ixemul.library with small data model.
-
- vbcc/machines/amiga68k/lib/ixemul.lib
-
- Stub library for using ixemul.library with large data model.
-
- vbcc/machines/amiga68k/lib/ixemuls.lib
-
- Stub library for using ixemul.library with small data model.
-
- vbcc/machines/amiga68k/lib/amiga.lib
-
- Replacement for the standard amiga.lib.
-
- vbcc/machines/amiga68k/lib/amigas.lib
-
- Small data replacement for the standard amiga.lib.
-
- vbcc/machines/amiga68k/lib/auto.lib
-
- Library for automatic opening of system libraries.
-
- vbcc/machines/amiga68k/lib/autos.lib
-
- Library for automatic opening of system libraries (small data).
-
- vbcc/machines/amiga68k/lib/minstart.o
-
- Small startup-code for small programs that do not use functions
- from the C-library.
-
- vbcc/machines/amiga68k/lib/extra.lib
-
- Very small library containing a few functions some people want.
-
- vbcc/machines/amiga68k/lib/extras.lib
-
- Small data version of the above.
-
-
-
- BUGREPORTS/COMMENTS
-
- If you think vbcc generates bad code, throws enforcer hits, crashes,
- seems to be not ANSI-compliant etc. and the problem is not mentioned
- anywhere in this docs as known problem, please send a mail with your
- system configuration, the vbcc version, the command line you used, the
- source that caused the problem and a brief description of the problem to
-
- volker@vb.franken.de
-
- Also if you find problems with the includes, the libraries or you have
- suggestions, dislikes etc. send me a mail.
- Corrections, improvements etc. of the manuals are appreciated, too.
-
-
-
- Volker Barthelmann volker@vb.franken.de
-
-